package com.cs.beneficios.web.action;
import com.cs.beneficios.business.entity.AreasDAO;
import com.cs.beneficios.common.ConnectionFactory;
import com.cs.paoyer.administration.business.model.UserVO;

import java.io.IOException;

import java.sql.SQLException;

import java.text.SimpleDateFormat;

import java.util.Calendar;
import java.util.LinkedList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

public class ModuloAreasAction extends Action 
{
  /**
   * This is the main action called from the Struts framework.
   * @param mapping The ActionMapping used to select this instance.
   * @param form The optional ActionForm bean for this request.
   * @param request The HTTP Request we are processing.
   * @param response The HTTP Response we are processing.
   * @return 
   * @throws java.io.IOException
   * @throws javax.servlet.ServletException
   */
  public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
  {
      //ConnectionFactory cf = new ConnectionFactory("beneficios","beneficios");
	  ConnectionFactory cf = new ConnectionFactory();
      HttpSession session = request.getSession();
      //Proceso para la auditoria
       UserVO user = (UserVO) request.getSession().getAttribute("userInfo");
       String terminalAddress = request.getRemoteAddr();
       String strTerminal = ("WEB="+terminalAddress);
       Calendar c = Calendar.getInstance(); 
       SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");   
      //Fin del proceso
      
      List lAreas = new LinkedList();
      List lAllAreas = new LinkedList();
      String strNombreArea = request.getParameter("nombrearea");
      String strOpcion = request.getParameter("opcion");
      try
      {
        AreasDAO objAreaDAO = new AreasDAO(cf);
        if((Object)strNombreArea != null)
          strNombreArea.trim();
        lAreas = objAreaDAO.ViewAreas(strNombreArea);
        lAllAreas = objAreaDAO.ViewAllAreas();
        cf.closeConnection(objAreaDAO.getConn());
        
        if((Object)strOpcion != null)
        {
          if(strOpcion.equals("2"))
          {
            if(lAreas.size() == 0)
            {
              String strNombre = request.getParameter("nombrearea");
              String strDescripcion = request.getParameter("descripcionarea");
              String strsubarea = request.getParameter("code");
              String subarea = request.getParameter("subarea");
              if(subarea != null && subarea.equals("N"))
              {
                 strsubarea = null;
              }
              String strArr[] = {strNombre,strDescripcion,strsubarea,
                         user.getName(), dateFormat.format(c.getTime()),strTerminal,
                         user.getName(),dateFormat.format(c.getTime()),strTerminal};
               AreasDAO objAreasDAO = new AreasDAO(cf);
               int insertcorrecto = objAreasDAO.InsertArea(strArr);
               cf.closeConnection(objAreasDAO.getConn());
            }else
            {
              request.setAttribute("msgerror","La secretaria ya existe");
            }
            return mapping.findForward("mensaje");
          }
          
        }
        
      }catch(SQLException e)
      {
		System.err.println("/******** TDSUB - cwsub");
		e.printStackTrace();
		System.err.println("TDSUB - cwsub ********/");
      }
      
      if(lAreas.size()>0)
      {
        request.setAttribute("ListaAreas",lAreas);
      }
      request.setAttribute("ListaAllAreas",lAllAreas);
      return mapping.findForward("success");
      
  }
}